'use strict';

/**
 * 注册用户识别记录schema（跟陌生人记录的区别就是需要把用户详细信息一同写入记录）
 */
const Cons = require('../common/constants');
const mongoose = require('mongoose'), Schema = mongoose.Schema;

const userRecordsSchema = new Schema({
    _id: { type: String }, //记录ID
    u_id: { type: String }, //用户id
    r_at: { type: Date, required: true }, //时间点
    r_cp: { type: String }, //抓拍人脸
    d_id: { type: String }, //设备id，用来区别门禁设备
    u_nm: { type: String, required: true }, //名字
    u_sx: { type: Number }, //1:男，0：女
    u_tp: { type: Number, required: true }, //员工管理（0:员工，1：实习生），访客管理（2：劳务、出差，3：贵宾）
    u_hp: { type: String }, //头像，目前的方案直接存在数据库
    u_no: { type: String }, //工号
    u_dm: { type: String }, //部门
    u_pn: { type: String }, //手机号码
    u_em: { type: String }, //邮箱
    u_pt: { type: String }, //职位
    g_mk: { type: String }, //劳务、出差备注，比如绿植养护，深圳出差、VIP欢迎语
    g_cp: { type: String }, //来访单位
    g_re: { type: String }, //接待人
    u_st: { type: Number, default: Cons.USER_STATUS_PENDING }, //1:通过，0:待确认（自助注册的用户需要通过管理员的认证，比如H5注册开放以后）
    p_fr: { type: Date }, //开始时间（对非正式员工的门禁限制）
    p_to: { type: Date }, //结束时间（对非正式员工的门禁限制）
    b_qp: Schema.Types.Mixed, //抓拍图
    c_id: { type: String }, //创建者
    m_id: { type: String }, //更新者
    liveness: { type: Number, default: Cons.RECORD_LIVENESS_NOT_CHECK },  //-1 not check, 0 not liveness, 1 liveness
}, { timestamps: { createdAt: 'c_at', updatedAt: 'm_at' } });

module.exports = mongoose.model('UserRecordsModel', userRecordsSchema, "record_user");
